#ifndef TREADMILL_H
#define TREADMILL_H

#include <string>

class Treadmill {
private:
    int state;       // 设备状态
    float speed;     // 当前速度
    int speedUnit;   // 速度单位
    float incline;   // 当前坡度
    int isPerson;    // 是否有人在设备上

    int calibrationProgress;    // 校准进程

    int diagnosticsOption;      // 诊断选项
    int diagnosticsProgress;    // 诊断进程
    int errorData;

    // 私有构造函数
    Treadmill();

    // 禁止拷贝构造函数和赋值操作
    Treadmill(const Treadmill&) = delete;
    Treadmill& operator=(const Treadmill&) = delete;

public:
    // 静态方法获取单例实例
    static Treadmill& getInstance();

    // Getter 和 Setter
    int getState() const;
    std::string getStateString() const;
    void setState(int _state);

    float getSpeed() const;
    void setSpeed(float _speed);

    std::string getSpeedUnit() const;
    void setSpeedUnit(int _unit);

    float getIncline() const;
    void setIncline(float inc);

    std::string getIsPersonString() const;
    int getIsPerson() const;
    void setIsPerson(int person);

    std::string getCalibrationProgress() const;
    void setCalibrationProgress(int progress);

    int getDiagnosticsOption() const;
    void setDiagnosticsOption(int option);

    int getDiagnosticsProgress() const;
    void setDiagnosticsProgress(int progress);

    int getErrorData() const;
    void setErrorData(int error);

};

#endif // TREADMILL_H
